package com.quanyan.place.entity.apireq;

import com.quanyan.BaseRequest;
import com.quanyan.orderpay.request.ReqPayInfo;
import com.quanyan.place.entity.apiresp.RespPlaceUserInfo;
import com.quanyan.place.entity.vo.UnitSalePlan;
import org.hibernate.validator.constraints.NotEmpty;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;
import java.util.UUID;

/**
 * Created by Kingson.chan on 2016/5/27 0027.
 */
public class ReqPlaceOrderInfo extends BaseRequest {
    @NotNull
    private BigDecimal orderAmount;
    @NotNull
    private Integer placeId;

    private Integer uid;
    @NotNull
    private Integer categoryId;
    @NotEmpty
    private List<ReqPayInfo> payInfos;
    @NotEmpty
    private List<UnitSalePlan> unitSalePlanIdList;

    private String mobile;

    private String verificationCode;

    private String token;

    private String tokenFlag;

    private Integer cityId;

    private String orderNo;

    private String placeOrderId;

    private String subjectURL;

    private RespPlaceUserInfo userInfo;

    private String describe;

    private String openId;

    private Byte sourceType;

    private Integer callbackType;

    private String cardNo;

    private String APPVersion;

    private String showURLForH5;// 商品展示网址 用户付款中途退出返回商户网站的地址。(支付宝)

    private String returnUrlForH5; //页面跳转同步通知页面路径 支付宝处理完请求后，当前页面自动跳转到商户网站里指定页面的http路径。（支付宝）
    private BigDecimal disCountBeforeAmount;
    private BigDecimal disCountAfterAmount;
    private Integer mchId; //城市ID / 与城市关联的账户ID. 固定传2.
    private BigDecimal primePrice;//订单原价

    private BigDecimal originPrice;

    private Integer isVipPay = 0; //区分会员价和普通价


    private Byte useType;//订单类型：0：开单 1：包场 2：门票 3：app开单 4：多种经营 5:开卡 6:充值
    private Byte businessType;// 交易类型：0：支付 1：退款
    private Integer ticketCount;
    private BigDecimal amount;//实际支付金额
    private Byte platform;//订单平台  1:IOS 2: ANDROID 3 :WEIXIN 4 :H5 5:后台
    private Byte tradeType = 0 ;//交易类型：0：支付 1：退款

    private String itemUuid;

    private Integer serviceSwitch = 0;
    private Integer isSendMsg = 0;

    private BigDecimal debit;
    public String getAPPVersion() {
        return APPVersion;
    }

    public void setAPPVersion(String APPVersion) {
        this.APPVersion = APPVersion;
    }

    public String getCardNo() {
        return cardNo;
    }

    public void setCardNo(String cardNo) {
        this.cardNo = cardNo;
    }

    public Integer getCallbackType() {
        return callbackType;
    }

    public void setCallbackType(Integer callbackType) {
        this.callbackType = callbackType;
    }

    public Byte getSourceType() {
        return sourceType;
    }

    public void setSourceType(Byte sourceType) {
        this.sourceType = sourceType;
    }

    public String getToken() {
        return token;
    }

    public void setToken(String token) {
        this.token = token;
    }

    public String getOpenId() {
        return openId;
    }

    public void setOpenId(String openId) {
        this.openId = openId;
    }

    public String getDescribe() {
        return describe;
    }

    public void setDescribe(String describe) {
        this.describe = describe;
    }

    public RespPlaceUserInfo getUserInfo() {
        return userInfo;
    }

    public void setUserInfo(RespPlaceUserInfo userInfo) {
        this.userInfo = userInfo;
    }

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public String getSubjectURL() {
        return subjectURL;
    }

    public void setSubjectURL(String subjectURL) {
        this.subjectURL = subjectURL;
    }

    public Integer getCityId() {
        return cityId;
    }

    public void setCityId(Integer cityId) {
        this.cityId = cityId;
    }

    public String getVerificationCode() {
        return verificationCode;
    }

    public void setVerificationCode(String verificationCode) {
        this.verificationCode = verificationCode;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public Integer getCategoryId() {
        return categoryId;
    }

    public void setCategoryId(Integer categoryId) {
        this.categoryId = categoryId;
    }

    public BigDecimal getOrderAmount() {
        return orderAmount;
    }

    public void setOrderAmount(BigDecimal orderAmount) {
        this.orderAmount = orderAmount;
    }

    public Integer getPlaceId() {
        return placeId;
    }

    public void setPlaceId(Integer placeId) {
        this.placeId = placeId;
    }

    public Integer getUid() {
        return uid;
    }

    public void setUid(Integer uid) {
        this.uid = uid;
    }

    public List<ReqPayInfo> getPayInfos() {
        return payInfos;
    }

    public void setPayInfos(List<ReqPayInfo> payInfos) {
        this.payInfos = payInfos;
    }

    public List<UnitSalePlan> getUnitSalePlanIdList() {
        return unitSalePlanIdList;
    }

    public void setUnitSalePlanIdList(List<UnitSalePlan> unitSalePlanIdList) {
        this.unitSalePlanIdList = unitSalePlanIdList;
    }


    public String getTokenFlag() {
        return tokenFlag;
    }

    public void setTokenFlag(String tokenFlag) {
        this.tokenFlag = tokenFlag;
    }
    public String getShowURLForH5() {
        return showURLForH5;
    }

    public void setShowURLForH5(String showURLForH5) {
        this.showURLForH5 = showURLForH5;
    }

    public String getReturnUrlForH5() {
        return returnUrlForH5;
    }

    public void setReturnUrlForH5(String returnUrlForH5) {
        this.returnUrlForH5 = returnUrlForH5;

    }

    public String getPlaceOrderId() {
        return placeOrderId;
    }

    public void setPlaceOrderId(String placeOrderId) {
        this.placeOrderId = placeOrderId;
    }

    public BigDecimal getDisCountBeforeAmount() {
        return disCountBeforeAmount;
    }

    public void setDisCountBeforeAmount(BigDecimal disCountBeforeAmount) {
        this.disCountBeforeAmount = disCountBeforeAmount;
    }

    public BigDecimal getDisCountAfterAmount() {
        return disCountAfterAmount;
    }

    public void setDisCountAfterAmount(BigDecimal disCountAfterAmount) {
        this.disCountAfterAmount = disCountAfterAmount;
    }

    public BigDecimal getPrimePrice() {
        return primePrice;
    }

    public void setPrimePrice(BigDecimal primePrice) {
        this.primePrice = primePrice;
    }

    public Integer getMchId() {
        return mchId;
    }

    public void setMchId(Integer mchId) {
        this.mchId = mchId;
    }

    public Integer getIsVipPay() {
        return isVipPay;
    }

    public void setIsVipPay(Integer isVipPay) {
        this.isVipPay = isVipPay;
    }

    public BigDecimal getOriginPrice() {
        return originPrice;
    }

    public void setOriginPrice(BigDecimal originPrice) {
        this.originPrice = originPrice;
    }

    public Byte getUseType() {
        return useType;
    }

    public void setUseType(Byte useType) {
        this.useType = useType;
    }

    public Byte getBusinessType() {
        return businessType;
    }

    public void setBusinessType(Byte businessType) {
        this.businessType = businessType;
    }

    public Integer getTicketCount() {
        return ticketCount;
    }

    public void setTicketCount(Integer ticketCount) {
        this.ticketCount = ticketCount;
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public Byte getPlatform() {
        return platform;
    }

    public void setPlatform(Byte platform) {
        this.platform = platform;
    }

    public Byte getTradeType() {
        return tradeType;
    }

    public void setTradeType(Byte tradeType) {
        this.tradeType = tradeType;
    }

    public String getItemUuid() {
        return itemUuid;
    }

    public void setItemUuid(String itemUuid) {
        this.itemUuid = itemUuid;
    }

    public Integer getServiceSwitch() {
        return serviceSwitch;
    }

    public void setServiceSwitch(Integer serviceSwitch) {
        this.serviceSwitch = serviceSwitch;
    }

    public Integer getIsSendMsg() {
        return isSendMsg;
    }

    public void setIsSendMsg(Integer isSendMsg) {
        this.isSendMsg = isSendMsg;
    }

    public BigDecimal getDebit() {
        return debit;
    }

    public void setDebit(BigDecimal debit) {
        this.debit = debit;
    }
}
